扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在最近的一个项目里,我需要遍历一个java对象树并从对象中获取值,为了避免使用重复的if else 语句,我需要一个工具使得我的工作可以更轻松,“我需要一个id为X的对象,并且要获取这个对象的A属性”,实际上,我需要一个对象查询工具!
JXPath 就是这样一个对象查询工具,它是一个apache common 组件,利用它,你可以使用著名的xpath 规则语言来查询复杂的java 对象树。
我在我的项目中大量使用了JXPath,它对于开发速度的提升是相当可观的,同时也使得值抽取算法相当的轻快。
尽管如此,关于JXPath 的文档并不多。由于我正在进行深度开发这个组件,所以我决定在我的一个JXPath 全面指南里写下我的研究成果,你可以在我的网站上找到它,这篇文章是那篇指南的缩写版,能够使得你迅速开始JXPath 之旅。
示例模型
为了演示的目的,我们采取了一个相对简单的模型:一个公司有多个部门,一个部门有多个员工,下面是模型图:
Class model
很自然,我们需要一些模型数据:
公司:
Acme Inc.
Sales 销售部:
Johnny, Sales rep, 45
Sarah, Sales rep, 33
Magda, Office assistant, 27
Accounting 会计部
Steve, Head controller, 51
Peter, Assistant controller, 31
Susan, Office assistant, 27
濠电姷顣介埀顒€鍟块埀顒€缍婇幃妯诲緞閹邦剛鐣洪梺闈浥堥弲婊勬叏濠婂牊鍋ㄦい鏍ㄧ〒閹藉啴鏌熼悜鈺傛珚鐎规洘宀稿畷鍫曞煛閸屾粍娈搁梻浣筋嚃閸ㄤ即宕㈤弽顐ュС闁挎稑瀚崰鍡樸亜閵堝懎濮┑鈽嗗亝濠㈡ê螞濡ゅ懏鍋傛繛鍡樻尭鐎氬鏌嶈閸撶喎顕i渚婄矗濞撴埃鍋撻柣娑欐崌閺屾稑鈹戦崨顕呮▊缂備焦顨呴惌鍌炵嵁鎼淬劌鐒垫い鎺戝鐎氬銇勯弽銊ф噥缂佽妫濋弻鐔碱敇瑜嶉悘鑼磼鏉堛劎绠為柡灞芥喘閺佹劙宕熼鐘虫緰闂佽崵濮抽梽宥夊垂閽樺)锝夊礋椤栨稑娈滈梺纭呮硾椤洟鍩€椤掆偓閿曪妇妲愰弮鍫濈闁绘劕寮Δ鍛厸闁割偒鍋勯悘锕傛煕鐎n偆澧紒鍌涘笧閹瑰嫰鎼圭憴鍕靛晥闂備礁鎼€氱兘宕归柆宥呯;鐎广儱顦伴崕宥夋煕閺囥劌澧ù鐘趁湁闁挎繂妫楅埢鏇㈡煃瑜滈崜姘跺蓟閵娧勵偨闁绘劕顕埢鏇㈡倵閿濆倹娅囨い蹇涗憾閺屾洟宕遍鐔奉伓